The present invention relates to the generation of characters of variable size, and more particularly to variable size character generation in point matrix printing.
A widespread method of printing alphanumeric characters and other symbols is the matrix printing of small image components, usually dots. By employing miniscule dots in a sufficiently fine printing matrix, this method may be used to print relatively small characters (i.e. a small fraction of an inch in size) as well as characters with dimensions of one inch or more. A given printer, if it is to print characters of different sizes with minimal cost, should have a constant dot density. The same principles apply to other visual systems characterized by point matrices, such as CRT-matrix displays.
It is desirable in many applications that a matrix printer possess sufficient flexibility to allow changes in character size on a character to character basis. A typical example is the printing of information on merchandise tags; it may be desirable to use different sizes for price, size, product description, etc.
The simplest method of expanding a character while retaining a given point density is to multiply the number of image points in a given direction by the desired expansion factor. Thus, one could double the height of a character by replacing each dot with two vertically adjacent dots. This method, however, results in undesirably jagged edges, particularly in expanding diagonal lines.
A somewhat more advanced character expansion algorithm is disclosed by C. W. Stein in U.S. Pat. No. 3,893,100. This method employs a predetermined number of size independent component shapes which are combined with a signal indicative of character size to produce a point display of given display density. As disclosed, the size independent shape components are six in number, including open and closed squares as well as four different 45.degree. triangles corresponding to the four possible orthogonal orientations. This method, while sound in its basic concept, suffers several practical limitations. It does not allow for different factors for vertical and horizontal expansion. The limited number of component shapes disclosed do not yield characters which are as pleasing in appearance as would be desirable for many purposes (for example, by allowing for curved edges). Finally, no algorithm is disclosed for deriving a suitable component shape to substitute for the single point in the unexpanded image. As a result, an increase in the number of component shapes would entail a large amount of storage to give this information for all the components of all the numbers of a character set. For example, with a character set of 100 members, printed on a 7.times.9 matrix, using a set of 60 component shapes (requiring six bit bytes), at least 6300 bytes would be involved. In a hardware embodiment, the higher cost of storage components typically outweighs the lower cost of components for analyzing the stored information.
Accordingly, it is a primary object of the invention to provide a character expansion method for point matrix characters. It is desirable that such a method produce characters which are visually pleasing. A related object is the availability of a wide range of character shapes, including curved edges.
It is another object of the invention that such an expansion algorithm be flexible. The algorithm should allow the possibility of different factors of expansion in the X and Y directions. In a hardware embodiment, the method should also allow the user to balance his requirements of image quality against the cost of implementing electronics.
A further object of the invention is the minimization of data storage requirements to implement the expansion algorithm. A related object is the formulation of an algorithm that will yield suitable component shapes for any expanded characters on the basis of already stored information.